﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using GameEngine.View.Components;
using GameEngine.Model.Data;
using System.Collections.Generic;

namespace GameEditor.View.Components
{
    public class IWorldEditorMenuViewConstants
    {
        public enum ButtonTags
        {
            //OK,CANCEL,
            NEWTHING,EDITTHING,REMOVETHING,COPYASNEWTHING
        }
        //public const string SAVEBUTTON = "SAVEBUTTON";
        //public const string EXITBUTTON = "EXITBUTTON";
        //public const string NEWLEVELBUTTON = "NEWLEVELBUTTON";
        //public const string EDITLEVELBUTTON = "EDITLEVELBUTTON";
        //public const string NEWTHINGTYPEBUTTON = "NEWTHINGTYPEBUTTON";
        //public const string EDITTHINGTYPEBUTTON = "EDITTHINGTYPEBUTTON";
        //public const string NEWVIEWBUTTON = "NEWVIEWBUTTON";
        //public const string EDITVIEWBUTTON = "EDITVIEWTYPEBUTTON";
        //public const string NEWRESOURCEBUTTON = "NEWRESOURCEBUTTON";
        //public const string EDITRESOURCEBUTTON = "EDITRESOURCETYPEBUTTON";
    }

    public interface IWorldEditorMenuView<ItemVOId>:IMenuView<IWorldEditorMenuViewConstants.ButtonTags>
        where ItemVOId : IComparable<ItemVOId>
   {
        string WorldName
        {
            get;
            set;
        }

        void AddThingType(IThingTypeVOId id);
        void RemoveThingType(IThingTypeVOId id);
        List<IThingTypeVOId> GetThingTypes();
        IThingTypeVOId SelectedThingType { get; }

        string NewThingName
        {
            get;            
        }

        void AddThing(IThingVOId<ItemVOId> id);
        void RemoveThing(IThingVOId<ItemVOId> id);
        List<IThingVOId<ItemVOId>> GetThings();
        IThingVOId<ItemVOId> SelectedThing { get; }
    }
}
